/**
 * @param {number[]} digits
 * @return {number[]}
 */
var plusOne = function (digits) {
  const n = digits.length;

  // 从最低位开始处理
  for (let i = n - 1; i >= 0; i--) {
    digits[i]++;

    // 如果当前位小于10，直接返回结果
    if (digits[i] < 10) {
      return digits;
    }

    // 否则，当前位为0，继续处理前一位
    digits[i] = 0;
  }

  // 如果所有位都是9，需要在最前面插入一个1
  return [1, ...digits];
};